講到雲端相關的議題,一定會看到的就是 IaaS 、 PaaS 與 SaaS。這幾個名詞可以算是雲端的三種層次,雖然我覺得,很多時候某些雲端服務不一定可以明確的區分他屬於哪一種層次,不過,其實也沒有太重要XD。既然大家都這麼的愛用,那我們就還是來了解一下他們分別的意義吧!
IaaS,基礎設施即服務,可以算是以雲端的角度而言,與地端的機器最相近的服務。如果用過 vCenter 等裝置的話應該可以想像,它就是可以在雲端開啟虛擬機器。就算沒有接觸過任何的虛擬機器也沒關係,我們可以想像成,就是在雲端幫我們準備了一台我們定義好規格的電腦。
使用 IaaS ,我們等同於可以直接的管理,控制整台電腦的所有功能,舉凡硬碟存取,網路存取,也可以完整的訪問 CPU 以及 Memory ,提供了最大的可控制性。但俗話說的好,能力越大,責任越重,在 IaaS 的環境底下,使用者虛擬主機上遇到的所有軟體相關問題,雲端的服務商也都不需要負責,雲端服務商只負責,並保證機器是可以被正常的運行的。
PaaS,平台即服務,相較於 IaaS ,我們不需要在意機器這麼底層的東西。較底層的基礎設施、作業系統與程式相關,都由雲端的廠商進行處理,使用者甚至不需要處理任何的軟體更新等問題。
假如說,我們的需求是需要架設一個 MySQL 的 Server。如果以地端的機器,或是以 IaaS 為角度來看的話,我們通常會先需要準備一台電腦,安裝一個 Linux 的作業系統,這個時候,會需要考量要使用到 Ubuntu 、Debian、 CentOS 等;等待安裝好了作業系統,接下來要安裝 MySQL 的 Server,這個時候又要考量說,我們的服務是否需要放在 Docker 的 Container 中,或是 MySQL 需要安裝多少的版本。
上述的這些問題,如果我們使用了 PaaS 中的資料庫相關服務,滑鼠點兩下,選擇開啟一台 Cloud SQL,等待幾分鐘的時間,雲端的廠商就全自動地幫我們處理好這樣的需求了!
SaaS,軟體即服務,這相信是大家目前都已經有接觸的一種雲端服務。基本上我們可以直接把這邊的 Software 視為一種產品。舉例來說 Google Drive 就算是一種 SaaS 的產品。我們可以開心的使用 Google Drive ,大家從來都不會在意或想過說:Google Drive 背後跑的是怎麼樣的作業系統,是 Linux 嗎? Google Drive 背後有沒有使用到 Hadoop 的 HDFS 之類的技術? 作為一個使用者來看,我們完全不需要在意以上所說的這些事情!只需要專注地使用我們的服務就好!
前面我們明確的分類了三種 IaaS,PaaS 與 SaaS。但我們還會有一些很不上不下的東西,它是介於 IaaS 與 PaaS 之間的。相信看過隔壁棚 DevOps 相關文章的人,會對 Kubernetes (K8S) 有一些基礎的,就可以感覺的到, K8S 就是介於兩者之間。
今天介紹了幾種的雲端架構,通常使用者可以控制得越多,能夠克制化的設定越多的東西,則需要負的責任也越多。
下圖是雲端提供的各種服務,使用者與雲端業者分別需要負的責任圖。
圖片來源 : Pizza as a Service 2.0
通常我個人會選擇相信,各大的雲端業者提出的 PaaS 與 SaaS ,比起我們大多數普通人自己建立的 IaaS 服務而言,他們通常做的優化都會比我們自己做來的好,當然這是在不考慮特殊需求的前提之下。
聽說,Google 開放在 Google Cloud 上面的各種服務,通常都是 Google 自己內部開發,並使用了一陣子,覺得不錯用,才會開放出來讓大家使用的。我相信無論是 AWS 或是 Azure ,應該也會是一樣的狀況,通常這些雲端的服務商,都是從自己使用的服務,開始轉型成雲端服務開放給大家使用。
今天的文章差不多就到這邊,預計明天開始就會正式的進入 Google Cloud 的世界!